package com.demo.search.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;

import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field.TermVector;

/**
 * 
 * @author ryuu.kk
 *
 */
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RUNTIME)
public @interface SearchableId {

    // Generated MetaData definitions

	/**
	 * 索引的字段key
	 * 默认空则使用字段名作为索引名
	 * @return String
	 */
    String name() default "";

    /**
     * boost 
     * @return float
     */
    float boost() default 1.0f;

    /**
     * 索引的存储模式
     * @return Store
     */
    Store store() default Store.YES;

    /**
     * 是否进行索引
     * @return boolean
     */
    Index index() default Index.NOT_ANALYZED;

    /**
     * 向量(默认不使用)
     * @return TermVector
     */
    TermVector termVector() default TermVector.NO;

    /**
     * 覆盖器,转换对象
     * @return String
     */
    String converter() default "";

    /**
     * 结果format
     * @return String
     */
    String format() default "";
}
